package com.libgdxbar.pvzlikegame.render;

import com.badlogic.gdx.graphics.Camera;
import org.libgdxbar.projects.interfaces.renderer.Renderable;

/**
 * 渲染代理接口，定义了渲染过程中的关键方法
 *
 * @param <T> 实现 {@link Renderable} 接口的可渲染对象类型
 */
public interface RenderAgent<T extends Renderable> {

	/**
	 * 设置渲染代理的视图相机
	 *
	 * @param camera 渲染使用的相机
	 */
	public void setView(Camera camera);

	/**
	 * 开始渲染过程
	 */
	public void begin();

	/**
	 * 渲染指定的可渲染对象
	 *
	 * @param renderable 需要渲染的对象
	 */
	public void render(T renderable);

	/**
	 * 结束渲染过程
	 */
	public void end();

}

